const router = require('koa-router')()
const cc = require('../conCtl')
const js = require('../jsCtl')
const db = require('../dbCtl')
const wc = require('../wechatCtl')

/**
@hostpath = http://127.0.0.1/client/wechatLogin
 */


//使用微信code登录，并获取用户信息
router.get('/login', async c => {
    js.check_params(!c.query.code && '!微信登录授权码(code)');

    //取得用户信息
    let body = await wc.getUserInfoByCode(c.query.code);
    let
        openid = body.openid,
        nick = body.nickname,           //用户昵称
        sex = body.sex,                 //用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
        province = body.province,       //用户个人资料填写的省份
        city = body.city,               //普通用户个人资料填写的城市
        country = body.country,         //国家，如中国为CN
        headurl = body.headimgurl,      //用户头像，最后一个数值代表正方形头像大小（有0、46、64、96、132数值可选，0代表640*640正方形头像），用户没有头像时该项为空。若用户更换头像，原有头像URL将失效。
        privilege = body.privilege;     //用户特权信息，json 数组，如微信沃卡用户为（chinaunicom）


    //更新或创建用户后，返回前端
    let data = { openid, nick, headurl };
    cc.log('insert or update user info', data)
    await db.model('t_users').insertOrUpdate(data);
    let user = await db.model('t_users').where('openid=?', openid).shift();


    cc.auth_sess_init(c, openid, 2);

    cc.send(c, user);
});

/** 绑定用户相互关系
###
    POST {{hostpath}}/share
    Content-Type: application/json

    {
        "share_openid":"oM2uY50rohAiNnksjCvt0HknGDAo",
        "openid":"oM2uY59aMmztLxDeqN2hC8fcCo8c"
    }
### */
router.post('/share', async c => {
    js.check_params(!c.request.body.share_openid && '!用户信息');//邀请人openid
    js.check_params(!c.request.body.openid && '!用户信息');//当前登录人openid
    if (c.request.body.share_openid != c.request.body.openid) {
        try {
            await db.model('t_user_share').insert({ openid: c.request.body.openid, pid_openid: c.request.body.share_openid });
        } catch {
            cc.log('重复分享')
        }
    }
    cc.send(c);
});

module.exports = router;